package com.ruoyi.zhgd.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 沥青拌合站报警数据业务对象 n_asphalt_station_alarm
 *
 * @author zyb
 * @date 2023-09-06
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class NAsphaltStationAlarmBo extends BaseEntity {

    /**
     * 数据主键，跟asphalt_station_data表主键一一对应
     */
    @NotBlank(message = "数据主键，跟asphalt_station_data表主键一一对应不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 拌合站主键，关联sys_station表主键
     */
    @NotBlank(message = "拌合站主键，关联sys_station表主键不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stationId;

    /**
     * 实际油报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "实际油报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer asphaltAggregateRatioAlarm;

    /**
     * 石子(0-3)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "石子(0-3)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gravel1Alarm;

    /**
     * 石子(3-6)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "石子(3-6)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gravel2Alarm;

    /**
     * 石子(6-11)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "石子(6-11)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gravel3Alarm;

    /**
     * 石子(11-16)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "石子(11-16)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gravel4Alarm;

    /**
     * 石子(16-22)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "石子(16-22)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gravel5Alarm;

    /**
     * 石子(22-32)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "石子(22-32)用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gravel6Alarm;

    /**
     * 水泥用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "水泥用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer cement1Alarm;

    /**
     * 再生料用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "再生料用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer recycledMaterialAlarm;

    /**
     * 矿粉实用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "矿粉实用料报警级别：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer slagPowderAlarm;

    /**
     * 级配报警级别：0=正常，1=超标
     */
    @NotNull(message = "级配报警级别：0=正常，1=超标不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer sievingAlarm;

    /**
     * 温度报警级别：0=正常，1=超标
     */
    @NotNull(message = "温度报警级别：0=正常，1=超标不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer temperatureAlarm;

    /**
     * 用料报警级别（以当前最大报警级别）：0=正常；1=初级报警；2=中级报警；3=高级报警；
     */
    @NotNull(message = "用料报警级别（以当前最大报警级别）：0=正常；1=初级报警；2=中级报警；3=高级报警；不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer alarm;

    /**
     * 预警详情
     */
    @NotBlank(message = "预警详情不能为空", groups = { AddGroup.class, EditGroup.class })
    private String details;


}
